Trade-Offs and Least Worst Architecture
#Fundamentals_of_Software_Architecture 4章のまとめ
アプリケーションはArhitectural Characteristics (Partially) Listedにある特性の一部しかサポートしない。それにはいくつかの理由がある
サポートされる特性は設計努力や構造的サポートを必要とする
一つの特性が他の特性に影響を持つ。SecurityとPerformanceなど
例え話
ヘリコプターの操縦はそれぞれの手とそれぞれの足をコントロールする必要がありその1つは他の部分に影響する
ヘリコプター操縦の習得はバランシングの練習
全てのアーキテクチャ特性を最大化することはできない
ベストなアーキテクチャを求めるな、最も悪くない(least worst)アーキテクチャを求めよ
これはアーキテクトがアーキテクチャを繰り返しデザインすべきであることを示唆する
アーキテクチャを容易に変更できればできるほど、最初の試行で正しい姿を見つける必要がなくなる
アジャイルの教訓は繰り返しの重要さでありそれはアーキテクチャも例外ではない